package homework025;


import java.io.*;
import java.net.Socket;

/**
 * 有一个客户端
 * 有一个服务端
 * 客户端要将本地的图片读取，并且通过TCP的方式发送给服务端
 * 服务端通过网络接收图片数据
 * 存储到本地的文件中
 * 存储完毕后，给客户端发送一条回信
 * 客户端打印回信
 */
public class Client {


    public static void main(String[] args) throws IOException {

        // 1. 读取本地图片
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\space-class\\27\\javase_homework\\src\\day15\\upload\\upload.jpg"));

        // 2. 创建网络连接
        // 3. 通过网络发送本地图片中读取到的数据（while）
        Socket socket = new Socket("127.0.0.1", 8000);
        // 获取对象，准备发送数据
        OutputStream outputStream = socket.getOutputStream();

        int i;
        while ((i = bis.read()) != -1) {
            // 读取图片的每一个字节
            System.out.println(i);
            // 每读取一个字节，就发送一个字节
            outputStream.write(i);
        }

        // 4. 接收服务端的回信（通过网络）
        InputStream inputStream = socket.getInputStream();
        int j;
        while ((j = inputStream.read()) != -1) {
            // 因为是在控制台打印，要能看得懂的内容，所以做另一个char转换
            System.out.print((char) j);
        }

        // 5. 关闭所有的流
        bis.close();
        socket.close();
    }

}
